//
// Created by wkm on 2024-04-21.
//

#ifndef AES128CHIPSYSTEMC_SHIFTROWS_MONITOR_H
#define AES128CHIPSYSTEMC_SHIFTROWS_MONITOR_H

#include "../core_module/CONSTANT.h"

SC_MODULE(shiftrows_monitor) {
    sc_in<bool> clk;
    sc_in<exe_state> m_done;
    sc_in<sc_uint<DATA_SIZE>> m_output_data_1;
    sc_in<sc_uint<DATA_SIZE>> m_output_data_2;
    sc_in<sc_uint<DATA_SIZE>> m_output_data_3;
    sc_in<sc_uint<DATA_SIZE>> m_output_data_4;
    sc_in<sc_uint<DATA_SIZE>> m_output_data_5;
    sc_in<sc_uint<DATA_SIZE>> m_output_data_6;
    sc_in<sc_uint<DATA_SIZE>> m_output_data_7;
    sc_in<sc_uint<DATA_SIZE>> m_output_data_8;
    sc_in<sc_uint<DATA_SIZE>> m_output_data_9;
    sc_in<sc_uint<DATA_SIZE>> m_output_data_10;
    sc_in<sc_uint<DATA_SIZE>> m_output_data_11;
    sc_in<sc_uint<DATA_SIZE>> m_output_data_12;
    sc_in<sc_uint<DATA_SIZE>> m_output_data_13;
    sc_in<sc_uint<DATA_SIZE>> m_output_data_14;
    sc_in<sc_uint<DATA_SIZE>> m_output_data_15;
    sc_in<sc_uint<DATA_SIZE>> m_output_data_16;

    void prc_shiftrows_monitor();

    SC_CTOR(shiftrows_monitor) {
        SC_METHOD(prc_shiftrows_monitor);
        sensitive << m_done;
    }

};

#endif //AES128CHIPSYSTEMC_SHIFTROWS_MONITOR_H
